1. Field of the Invention
The present invention generally relates to computer interface systems. More particularly, the present invention relates to computers in a communication interface that transmit self-descriptive information.
2. Description of the Related Art
Computers and common peripheral devices such as modems, printers, and displays are connected in communication such that a computer, generally referred to as the host, can send data and receive data from the peripheral devices and other computers. The communication channel between the computer(s) and devices may be either unidirectional, such that one computer or peripheral device only sends or only receives data to another, or bidirectional, with each device both sending and receiving data. In such a scenario, one computer or peripheral device can serve either single or multiple hosts, which is often dependent upon the manner of connection of the devices.
A typical device-host connection is a cable connected directly to the serial or parallel port of both the host and the peripheral device such that the peripheral device primarily serves the connected host. Alternatively, a computer and peripheral device are connected in a network and each device is accessible to and can interface with multiple hosts residing on that network. In order to properly interface, the computer(s) and peripheral device(s) must have a known data protocol between them whereby each device can understand the data from one another.
The interface protocol is particularly important in host-peripheral device applications in which the host is controlling the peripheral device to perform a function. The data passed from the host to the peripheral must be very specific in the desired function, and often, the peripheral device will communicate with the host to inform the host of the properties and functions of the peripheral device. An example of such interface is that between a computer as the host device and a printer as the peripheral device through a known protocol such as the Network Printer Alliance Protocol (NPAP).
A printer has numerous setting capabilities, a few examples being paper size, font, and paper type, which are often changed for every single print job requested by a host computer. Furthermore, prior art printers have the capability to send data back to the host computer indicative of various parameters of the printer, such as job in progress, paper jam, paper tray status, and printing errors. Thus, when the computer and printer are interfaced, they pass the above data regarding the print jobs and printer status through data variables that reflect the attributes of one parameter. And when the attributes of printing parameter are desired to be changed, the computer sends specific variables to the printer and each variable changes one parameter of the printer. Given the significant number of parameters for the printer and the specific control desired by the host computer, several problems are recurrent in the host computer-peripheral device interface.
The host computer and peripheral device can be unaware of the all of the variables for different parameters of the other devices, such as the variables for specific printer settings and capabilities, or the inter-relationship between different variables and their related parameters and functions. Accordingly, when a printer attempts to provide this “self-descriptive” data, such as configuration data, to a host computer, or when the host computer attempts to change several settings in the printer, the variables utilized may not effectively communicate all parameters of the devices. Because of this inadequate communication between interfaced devices in prior art systems, hosts and peripheral devices have been unable to easily provide conceptual settings to a user, such as “print quality” or “page layout.”
Moreover, either the host or the peripheral device may need to update many variable settings on their underlying hardware for proper functioning, especially through upgrades and changes in software. To correctly update the variables, the host must have advance knowledge of the variables and their interdependence to even allow the user to change the variables. Further, other problems can occur because subsequent code releases in the device tend to change those interdependencies by changing the settings of the individual variables or adding new dependencies. Even though the device may be aware of the new interdependencies, if the dependencies are not easily stored and communicated to other systems in the device, confusion and extra development time may result as those variables are changed.
Accordingly, to function properly as a complete interface system, the capability to understand the interdependencies between variables must exist at both the host and the device. Furthermore, the variable relationships frequently change and if one device were not properly updated, the system would fail. The prior art systems thus provide an unsatisfactory interface between host computers and peripheral devices, and particularly host computers and printers, as complex self-descriptive data and commands with variables is limited and prone to error. A system that allows improved self-description would therefore represent an improvement over the prior art computer-peripheral device interfaces. It is to the provision of such an improved interface system that the present invention is primarily directed.